<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Inputs Channel: Spice-GTK Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Spice-GTK Reference Manual">
<link rel="up" href="ch02.html" title="Session and Channels Objects, from spice-client-glib">
<link rel="prev" href="SpiceDisplayChannel.html" title="Display Channel">
<link rel="next" href="SpiceMainChannel.html" title="Main Channel">
<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#SpiceInputsChannel.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#SpiceInputsChannel.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#SpiceInputsChannel.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                  <a href="#SpiceInputsChannel.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="SpiceDisplayChannel.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="SpiceMainChannel.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="SpiceInputsChannel"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="SpiceInputsChannel.top_of_page"></a>Inputs Channel</span></h2>
<p>Inputs Channel — control the server mouse and keyboard</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="SpiceInputsChannel.stability-level"></a><h2>Stability Level</h2>
<acronym title="The intention of a Stable interface is to enable arbitrary third parties to
develop applications to these interfaces, release them, and have confidence that
they will run on all minor releases of the product (after the one in which the
interface was introduced, and within the same major release). Even at a major
release, incompatible changes are expected to be rare, and to have strong
justifications.
"><span class="acronym">Stable</span></acronym>, unless otherwise indicated
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.functions"></a><h2>Functions</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-motion" title="spice_inputs_motion ()">spice_inputs_motion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-position" title="spice_inputs_position ()">spice_inputs_position</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-button-press" title="spice_inputs_button_press ()">spice_inputs_button_press</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-button-release" title="spice_inputs_button_release ()">spice_inputs_button_release</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-key-press" title="spice_inputs_key_press ()">spice_inputs_key_press</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-key-press-and-release" title="spice_inputs_key_press_and_release ()">spice_inputs_key_press_and_release</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-key-release" title="spice_inputs_key_release ()">spice_inputs_key_release</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceInputsChannel.html#spice-inputs-set-key-locks" title="spice_inputs_set_key_locks ()">spice_inputs_set_key_locks</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.properties"></a><h2>Properties</h2>
<div class="informaltable"><table border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody><tr>
<td class="property_type"><span class="type">gint</span></td>
<td class="property_name"><a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel--key-modifiers" title="The “key-modifiers” property">key-modifiers</a></td>
<td class="property_flags">Read</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.signals"></a><h2>Signals</h2>
<div class="informaltable"><table border="0">
<colgroup>
<col width="150px" class="signals_return">
<col width="300px" class="signals_name">
<col width="200px" class="signals_flags">
</colgroup>
<tbody><tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel-inputs-modifiers" title="The “inputs-modifiers” signal">inputs-modifiers</a></td>
<td class="signal_flags">Run First</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel-struct" title="struct SpiceInputsChannel">SpiceInputsChannel</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="SpiceInputsChannel.html#SpiceInputsChannelClass" title="struct SpiceInputsChannelClass">SpiceInputsChannelClass</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="SpiceInputsChannel.html#SpiceInputsLock" title="enum SpiceInputsLock">SpiceInputsLock</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GFlags
    <span class="lineart">╰──</span> SpiceInputsLock
    GObject
    <span class="lineart">╰──</span> <a class="link" href="SpiceChannel.html" title="Spice Channel">SpiceChannel</a>
        <span class="lineart">╰──</span> SpiceInputsChannel
</pre>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;spice-client.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.description"></a><h2>Description</h2>
<p>Spice supports sending keyboard key events and keyboard leds
synchronization. The key events are sent using
<a class="link" href="SpiceInputsChannel.html#spice-inputs-key-press" title="spice_inputs_key_press ()"><code class="function">spice_inputs_key_press()</code></a> and <a class="link" href="SpiceInputsChannel.html#spice-inputs-key-release" title="spice_inputs_key_release ()"><code class="function">spice_inputs_key_release()</code></a> using
a modified variant of PC XT scancodes.</p>
<p>Guest keyboard leds state can be manipulated with
<a class="link" href="SpiceInputsChannel.html#spice-inputs-set-key-locks" title="spice_inputs_set_key_locks ()"><code class="function">spice_inputs_set_key_locks()</code></a>. When key lock change, a notification
is emitted with <a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel-inputs-modifiers" title="The “inputs-modifiers” signal"><span class="type">“inputs-modifiers”</span></a> signal.</p>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="spice-inputs-motion"></a><h3>spice_inputs_motion ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_motion (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                     <em class="parameter"><code><span class="type">gint</span> dx</code></em>,
                     <em class="parameter"><code><span class="type">gint</span> dy</code></em>,
                     <em class="parameter"><code><span class="type">gint</span> button_state</code></em>);</pre>
<p>Change mouse position (used in SPICE_MOUSE_MODE_CLIENT).</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dx</p></td>
<td class="parameter_description"><p>delta X mouse coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dy</p></td>
<td class="parameter_description"><p>delta Y mouse coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button_state</p></td>
<td class="parameter_description"><p>SPICE_MOUSE_BUTTON_MASK flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-position"></a><h3>spice_inputs_position ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_position (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                       <em class="parameter"><code><span class="type">gint</span> x</code></em>,
                       <em class="parameter"><code><span class="type">gint</span> y</code></em>,
                       <em class="parameter"><code><span class="type">gint</span> display</code></em>,
                       <em class="parameter"><code><span class="type">gint</span> button_state</code></em>);</pre>
<p>Change mouse position (used in SPICE_MOUSE_MODE_CLIENT).</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.3.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>X mouse coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>Y mouse coordinates</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>display</p></td>
<td class="parameter_description"><p>display channel id</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button_state</p></td>
<td class="parameter_description"><p>SPICE_MOUSE_BUTTON_MASK flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-button-press"></a><h3>spice_inputs_button_press ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_button_press (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                           <em class="parameter"><code><span class="type">gint</span> button</code></em>,
                           <em class="parameter"><code><span class="type">gint</span> button_state</code></em>);</pre>
<p>Press a mouse button.</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.4.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button</p></td>
<td class="parameter_description"><p>a SPICE_MOUSE_BUTTON</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button_state</p></td>
<td class="parameter_description"><p>SPICE_MOUSE_BUTTON_MASK flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-button-release"></a><h3>spice_inputs_button_release ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_button_release (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> button</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> button_state</code></em>);</pre>
<p>Release a button.</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.5.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button</p></td>
<td class="parameter_description"><p>a SPICE_MOUSE_BUTTON</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>button_state</p></td>
<td class="parameter_description"><p>SPICE_MOUSE_BUTTON_MASK flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-key-press"></a><h3>spice_inputs_key_press ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_key_press (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                        <em class="parameter"><code><span class="type">guint</span> scancode</code></em>);</pre>
<p>Press a key.</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.6.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>scancode</p></td>
<td class="parameter_description"><p>a PC XT (set 1) key scancode.  For scancodes with an <code class="literal">0xe0</code>
prefix, drop the prefix and OR the scancode with <code class="literal">0x100</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-key-press-and-release"></a><h3>spice_inputs_key_press_and_release ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_key_press_and_release (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                                    <em class="parameter"><code><span class="type">guint</span> scancode</code></em>);</pre>
<p>Press and release a key event atomically (in the same message).</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.7.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>scancode</p></td>
<td class="parameter_description"><p>a PC XT (set 1) key scancode.  For scancodes with an <code class="literal">0xe0</code>
prefix, drop the prefix and OR the scancode with <code class="literal">0x100</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 0.13</p>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-key-release"></a><h3>spice_inputs_key_release ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_key_release (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                          <em class="parameter"><code><span class="type">guint</span> scancode</code></em>);</pre>
<p>Release a key.</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.8.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>scancode</p></td>
<td class="parameter_description"><p>a PC XT (set 1) key scancode.  For scancodes with an <code class="literal">0xe0</code>
prefix, drop the prefix and OR the scancode with <code class="literal">0x100</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-inputs-set-key-locks"></a><h3>spice_inputs_set_key_locks ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_inputs_set_key_locks (<em class="parameter"><code><a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *channel</code></em>,
                            <em class="parameter"><code><span class="type">guint</span> locks</code></em>);</pre>
<p>Set the keyboard locks on the guest (Caps, Num, Scroll..)</p>
<div class="refsect3">
<a name="id-1.2.3.6.11.9.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>channel</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>locks</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceInputsChannel.html#SpiceInputsLock" title="enum SpiceInputsLock"><span class="type">SpiceInputsLock</span></a> modifiers flags</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="SpiceInputsChannel-struct"></a><h3>struct SpiceInputsChannel</h3>
<pre class="programlisting">struct SpiceInputsChannel;</pre>
<p>The <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> struct is opaque and should not be accessed directly.</p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceInputsChannelClass"></a><h3>struct SpiceInputsChannelClass</h3>
<pre class="programlisting">struct SpiceInputsChannelClass {
    SpiceChannelClass parent_class;

    /* signals */
    void (*inputs_modifiers)(SpiceChannel *channel);
};
</pre>
<p>Class structure for <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a>.</p>
<div class="refsect3">
<a name="id-1.2.3.6.12.3.5"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><a class="link" href="SpiceChannel.html#SpiceChannelClass" title="SpiceChannelClass"><span class="type">SpiceChannelClass</span></a> <em class="structfield"><code><a name="SpiceInputsChannelClass.parent-class"></a>parent_class</code></em>;</p></td>
<td class="struct_member_description"><p>Parent class.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="SpiceInputsChannelClass.inputs-modifiers"></a>inputs_modifiers</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal class handler for the <a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel-inputs-modifiers" title="The “inputs-modifiers” signal"><span class="type">“inputs-modifiers”</span></a> signal.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="SpiceInputsLock"></a><h3>enum SpiceInputsLock</h3>
<p>Constants used to synchronize modifiers between a client and a guest.</p>
<div class="refsect3">
<a name="id-1.2.3.6.12.4.4"></a><h4>Members</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="SPICE-INPUTS-SCROLL-LOCK:CAPS"></a>SPICE_INPUTS_SCROLL_LOCK</p></td>
<td class="enum_member_description">
<p>Scroll Lock</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="SPICE-INPUTS-NUM-LOCK:CAPS"></a>SPICE_INPUTS_NUM_LOCK</p></td>
<td class="enum_member_description">
<p>Num Lock</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="SPICE-INPUTS-CAPS-LOCK:CAPS"></a>SPICE_INPUTS_CAPS_LOCK</p></td>
<td class="enum_member_description">
<p>Caps Lock</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="SpiceInputsChannel--key-modifiers"></a><h3>The <code class="literal">“key-modifiers”</code> property</h3>
<pre class="programlisting">  “key-modifiers”            <span class="type">gint</span></pre>
<p>Guest keyboard lock/led state.</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 0</p>
</div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="SpiceInputsChannel-inputs-modifiers"></a><h3>The <code class="literal">“inputs-modifiers”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> *display,
               <span class="type">gpointer</span>            user_data)</pre>
<p>The <a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel-inputs-modifiers" title="The “inputs-modifiers” signal"><span class="type">“inputs-modifiers”</span></a> signal is emitted when
the guest keyboard locks are changed. You can read the current
state from <a class="link" href="SpiceInputsChannel.html#SpiceInputsChannel--key-modifiers" title="The “key-modifiers” property"><span class="type">“key-modifiers”</span></a> property.</p>
<div class="refsect3">
<a name="id-1.2.3.6.14.2.5"></a><h4>Parameters</h4>
<div class="informaltable"><table width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>display</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceInputsChannel.html" title="Inputs Channel"><span class="type">SpiceInputsChannel</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
</div>
<div class="refsect1">
<a name="SpiceInputsChannel.see-also"></a><h2>See Also</h2>
<p><a class="link" href="SpiceChannel.html" title="Spice Channel"><span class="type">SpiceChannel</span></a>, and the GTK widget <a class="link" href="SpiceDisplay.html" title="Spice Display"><span class="type">SpiceDisplay</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.24</div>
</body>
</html>